﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

/// <summary>
/// 猫的控制脚本。
/// </summary>
public class MaoController : MonoBehaviour
{
    public Rigidbody rBody;
    public float speed;
    Vector3 controlSignal = Vector3.zero;

    public Transform Target0;// 一级老鼠
    public Text textCoin;// 金币文本
    public int coinNum;// 金币数量

    public Transform Target1;// 二级老鼠
    public Text textBlue;// 蓝钻文本
    public int blueNum;// 蓝钻数量

    public Transform Target2;// 三级老鼠
    public Text textRed;// 红钻文本
    public int redNum;// 红钻数量

    void Start()
    {
        rBody = GetComponent<Rigidbody>();
    }

    /// <summary>
    /// 猫捕捉不同级别的老鼠，不同的奖励各自增加。
    /// 捕捉一级老鼠，金币增加；
    /// 捕捉二级老鼠，蓝钻增加；
    /// 捕捉三级老鼠，红钻增加；
    /// </summary>
    void FixedUpdate()
    {
        //用W、A、S、D按键控制猫移动。
        controlSignal.x = Input.GetAxis("Horizontal");
        controlSignal.z = Input.GetAxis("Vertical");
        rBody.AddForce(controlSignal * speed);

        // 当猫掉下地面时，将猫复位。
        if (this.transform.position.y < 0)
        {
            this.rBody.angularVelocity = Vector3.zero;
            this.rBody.velocity = Vector3.zero;
            this.transform.position = new Vector3(0, 0, 0);
        }

        // 捉到一级老鼠，金币加1。
        float distanceToTarget0 = Vector3.Distance(this.transform.position,
                                                  Target0.position);
        // 判断猫和一级老鼠的距离，距离小于 1.42f 表示猫捉到了老鼠。
        if (distanceToTarget0 < 1.42f)
        {
            // 一级老鼠被捉到后，逃跑到一个随机位置。
            Target0.position = new Vector3(Random.value * 8 - 4,
                                          0.5f,
                                          Random.value * 8 - 4);

            //金币增加。
            coinNum++;
            textCoin.text = coinNum.ToString();
        }

        // 捉到二级老鼠，蓝钻加1。
        float distanceToTarget1 = Vector3.Distance(this.transform.position,
                                                  Target1.position);
        // 判断猫和二级老鼠的距离，距离小于 1.42f 表示猫捉到了老鼠。
        if (distanceToTarget1 < 1.42f)
        {
            // 二级老鼠被捉到后，逃跑到一个随机位置。
            Target1.position = new Vector3(Random.value * 8 - 4,
                                          0.5f,
                                          Random.value * 8 - 4);

            //蓝钻增加。
            blueNum++;
            textBlue.text = blueNum.ToString();
        }

        // 捉到三级老鼠，红钻加1。
        float distanceToTarget2 = Vector3.Distance(this.transform.position,
                                                  Target2.position);
        // 判断猫和三级老鼠的距离，距离小于 1.42f 表示猫捉到了老鼠。
        if (distanceToTarget2 < 1.42f)
        {
            // 三级老鼠被捉到后，逃跑到一个随机位置。
            Target2.position = new Vector3(Random.value * 8 - 4,
                                          0.5f,
                                          Random.value * 8 - 4);

            //红钻增加。
            redNum++;
            textRed.text = redNum.ToString();
        }
    }
}